class Solution:
    def canMakeSquare(self, grid: list[list[str]]) -> bool:
        '''
        给你一个二维 3 x 3 的矩阵 grid ，每个格子都是一个字符，要么是 'B' ，要么是 'W' 。字符 'W' 表示白色，字符 'B' 表示黑色。

你的任务是改变 至多一个 格子的颜色，使得矩阵中存在一个 2 x 2 颜色完全相同的正方形。

如果可以得到一个相同颜色的 2 x 2 正方形，那么返回 true ，否则返回 false 。


        :param grid:
        :return:
        '''


        #先写一个拆分数组的功能，用于把3*3变为2*2
        #将小数组遍历，用字典cant【0】*2统计颜色个数，3有三个就返回True
        little_array = {'B': 0}
        for i in range(2):
            for j in range(2):
                little_array['B']  = 0#每次进循环次数重置0
                if grid[i][j] == 'B' :
                    little_array['B'] += 1
                if  grid[i][j+1] == 'B' :
                    little_array['B'] += 1
                if  grid[i+1][j] == 'B' :
                    little_array['B'] += 1
                if grid[i+1][j+1] == 'B':
                    little_array['B'] += 1
                if little_array['B'] != 2:
                    return True
        return False
#b =1 ,w = 0 ,



if __name__ == '__main__':
 test = Solution()
 print(test.canMakeSquare([["B","W","B"],["W","B","W"],["B","W","B"]]))